package br.upis.criacional.factory.method.Montadora.Singleton;

import br.upis.criacional.factory.method.Montadora.Abstrato.Montadora;
import br.upis.criacional.factory.method.Montadora.Enum.Montadoras;
import br.upis.criacional.factory.method.Montadora.Fabrica.MontadoraFiat;
import br.upis.criacional.factory.method.Montadora.Fabrica.MontadoraPersonalizada;
import br.upis.criacional.factory.method.Montadora.Fabrica.MontadoraVW;

public class ConfiguraMontadora {

	private static ConfiguraMontadora uniqueInstance;
	
	private ConfiguraMontadora(){}
	
	public static synchronized ConfiguraMontadora getInstance(){
		if (uniqueInstance == null){
			uniqueInstance = new ConfiguraMontadora();
		}
		return uniqueInstance;
	}
	
	public static Montadora definirMontadora(Montadoras montadoras){
		Montadora m = null;
		switch (montadoras){
			case VW:
				m = new MontadoraVW();
				break;
			case FIAT:
				m = new MontadoraFiat();
				break;
			case PERSONALIZADA:
				m = new MontadoraPersonalizada();
				break;
		}
		return m;
	}
	
	public static Object[] buscaMontadoras(){
		Object[] montadoras = Montadoras.values();
		return montadoras;
	}

}
